@CI
3年前 提问
1个回答
c语言位运算符
一颗小胡椒
3年前
c语言共有6种位运算符:
- 异或^(xor)
算法规律:参数转换为二进制对比,相同为0,不同为1,结果转换为对应的二进制数据就是0000 1010,十进制数据即为10(任意数据与0进行异或,结果还是不变A ^ 0 = A)
- 按位与&(and)
算法规律:参数转换为二进制对比,两者为1才是1,其余都为0,结果转换为二进制数据就是0001 0100,十进制数据即为20
- 按位或|(or)
算法规律:参数转换为二进制对比,有1为1,结果转换为二进制数据就是0001 1110,十进制数据即为30
- 取反~(not)
算法规律:参数取相反数,并将相反数结果-1
- 左移<<(lsh)
算法规律:参数转变为二进制数据0001 0100,左移2位后,得到的二进制数据0101 0000,转换为十进制即为80
注意:左移5位后,后补0,二进制为0010 1000 0000,转换为十进制640
- 右移>>(rsh)
算法规律:参数转变为二进制数据0001 0100,右移2位后,得到的二进制数据0000 0101,转换为十进制即为5。